package com.example.testapplication;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import androidx.annotation.Nullable;

public class Handler1Activity extends ApplicationActivity{
    // 快捷键 logt
    // UI线程
    private static final String TAG = "Handler1Activity";
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_handler1);
        TextView textView = (TextView)findViewById(R.id.textView10);

        // 创建Handler
        // 主线程
        Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg){
                super.handleMessage(msg);
                /**
                 *  主线程接到子线程发出来的消息，处理
                 * */
                // 处理消息
                Log.d(TAG,"handleMessage:" + msg.what);
                if(msg.what == 1002){
                    textView.setText("学习handler");
                    Log.d(TAG,"handleMessage:" + msg.arg1);
                }
            }
        };

        findViewById(R.id.handler_btn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 子线程
                // 这样做好处是
                // 有可能做大量耗时操作
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            // 两秒后执行
                            Thread.sleep(2000);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        /**
                         *  通知UI更新
                         * */
                        // 发送消息
                        handler.sendEmptyMessage(1001);
                        // Handler常用发送消息方法

                        Message message = Message.obtain();
                        message.what = 1002;
                        message.arg1 = 1003;
                        message.arg2 = 1004;
                        message.obj = Handler1Activity.this;

//                        handler.sendMessage(message);
//
//                        // 定时发送信息方法 在某个时间发送
//                        handler.sendMessageAtTime(message, SystemClock.uptimeMillis() + 3000);
//                        // 过了多久后再发送消息，延时的功能
//                        handler.sendMessageDelayed(message, 2000);
//                        final Runnable runnable = new Runnable() {
//                            @Override
//                            public void run() {
//                                int a = 1 + 2 + 3;
//                            }
//                        };
//
//                        handler.post(runnable);
//                        runnable.run();
//                        handler.postDelayed(runnable, 2000);


                    }
                }).start();
            }

        });

        handler.sendEmptyMessage(1001);
    }
}
